from collections import defaultdict

normal_dict = {}
normal_dict['a'] = '1'
normal_dict['b'] = '2'
normal_dict['c'] = '3'
# 如果有同一个key重复赋值，会将之前的值覆盖
normal_dict['a'] = '4'
print(normal_dict)


# 一键多值字典
# 可以往同一个键下存放多个值，值的形式可以是 list ,也可以是 set.
d_list = defaultdict(list)
d_list['a'].append(1)
d_list['b'].append(2)
d_list['c'].append(3)
d_list['a'].append(4)
d_list['b'].append(5)
print(d_list)

d_set = defaultdict(set)
d_set['a'].add(1)
d_set['a'].add(2)
d_set['a'].add(1)
d_set['b'].add(3)
d_set['c'].add(4)
print(d_set)

# 利用setdefault 将普通的 dict 变成一键多值 dict
normal_default_dict = {}
normal_default_dict.setdefault('a',[]).append(1)
normal_default_dict.setdefault('a',[]).append(2)
normal_default_dict.setdefault('b',[]).append(3)
print(normal_default_dict)